home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 10
/
AACD 10.iso
/
AACD
/
Utilities
/
PalmLink
/
src
/
palmlink_glob.h
next >
Wrap
C/C++ Source or Header
|
2000-05-05
|
15KB
|
201 lines
/**
* PalmLink -- Connect 3Com Palm with Amiga
*
* Global header file
*
* (C) 1998-2000 Richard Körber <rkoerber@gmx.de>
*
*------------------------------------------------------------------
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* You must not use this source code to gain profit of any kind!
*/
#ifndef PALMLINK_GLOB_H
#define PALMLINK_GLOB_H
//#define DEBUGOUT /* Debug output? */
//#define SERDEBUG /* Debug: Serial interface */
//#define SLPDEBUG /* Debug: Serial Link Protocol */
//#define PADPDEBUG /* Debug: Packet Assembly Disassembly Protocol */
//#define APIDEBUG /* Debug: API */
//#define DLPDEBUG /* Debug: DLP */
//#define FILEDEBUG /* Debug: File */
#include <clib/alib_protos.h>
#include <clib/exec_protos.h>
#include <clib/dos_protos.h>
#include <clib/utility_protos.h>
#include <clib/rexxsyslib_protos.h>
//#include <clib/palmlink_protos.h>
#include <pragmas/exec_pragmas.h>
#include <pragmas/dos_pragmas.h>
#include <pragmas/utility_pragmas.h>
#include <pragmas/rexxsyslib_pragmas.h>
//#include <pragmas/palmlink_pragmas.h>
#include <exec/memory.h>
#include <exec/libraries.h>
#include <exec/semaphores.h>
#include <utility/tagitem.h>
#include <rexx/rxslib.h>
#include <rexx/errors.h>
#include <dos/dos.h>
#include <dos/dosasl.h>
#include "palmlink.h"
#include "palmlink_private.h"
#define max(a,b) ((a)>(b) ? (a) : (b))
#define min(a,b) ((a)<(b) ? (a) : (b))
struct Global
{
UBYTE *slptrash; /* Trash buffer for SLP */
struct SignalSemaphore rexxHandleSemaphore;
struct List rexxHandles;
BOOL rexxHandleOK;
};
/*
** P R O T O T Y P E S
*/
/*-- PL_Init.c --*/
extern struct DOSBase *DOSBase;
extern struct Library *UtilityBase;
extern struct Library *SysBase;
extern struct Library *RexxSysBase;
extern struct Library *PalmlinkBase;
extern struct Global global;
/*-- PL_Socket.c --*/
extern __saveds __asm APTR PL_OpenSocket(register __a0 struct TagItem *taglist);
extern __saveds __asm int PL_Accept(register __a0 APTR socket, register __d0 ULONG timeout);
extern __saveds __asm int PL_Connect(register __a0 APTR socket);
extern __saveds __asm LONG PL_LastError(register __a0 APTR socket);
extern __saveds __asm ULONG PL_GetBaudRate(register __a0 APTR socket);
extern __saveds __asm LONG PL_Read(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG size);
extern __saveds __asm LONG PL_Write(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG size);
extern __saveds __asm LONG PL_Tickle(register __a0 APTR socket);
extern __saveds __asm void PL_CloseSocket(register __a0 APTR socket);
extern __saveds __asm void PL_Explain(register __a0 LONG error, register __a1 STRPTR buffer, register __d0 ULONG length);
/*-- PL_Serial.c --*/
extern int OpenPalmSerial(struct PL_Socket *sock, STRPTR device, ULONG unit, ULONG baud);
extern void ClosePalmSerial(struct PL_Socket *sock);
extern __saveds __asm int PL_RawSetRate(register __a0 APTR socket, register __d0 ULONG baud);
extern __saveds __asm LONG PL_RawRead(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length);
extern __saveds __asm LONG PL_RawWrite(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length);
extern __saveds __asm int PL_RawFlush(register __a0 APTR socket);
/*-- PL_SLP.c --*/
extern __saveds __asm LONG PL_SLPWrite(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length, register __a2 struct PL_SLP_Header *header, register __a3 struct PL_PADP_Header *padp);
extern __saveds __asm LONG PL_SLPRead(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length, register __a2 struct PL_SLP_Header *header, register __a3 struct PL_PADP_Header *padp);
/*-- PL_PADP.c --*/
extern __saveds __asm LONG PL_PADPWrite(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length, register __d1 UWORD type);
extern __saveds __asm LONG PL_PADPRead(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length);
/*-- PL_CMP.c --*/
extern __saveds __asm int PL_CMPAbort(register __a0 APTR socket, register __d0 UBYTE reason);
extern __saveds __asm int PL_CMPInit(register __a0 APTR socket, register __d0 ULONG rate);
extern __saveds __asm int PL_CMPWakeUp(register __a0 APTR socket, register __d0 ULONG maxrate);
extern __saveds __asm int PL_CMPRead(register __a0 APTR socket, register __d0 struct PL_CMP *cmp);
/*-- PL_DLP.c --*/
extern __saveds __asm void PL_DLPInit(register __a0 APTR socket);
extern __saveds __asm LONG PL_DLPWriteByte(register __a0 APTR socket, register __d0 BYTE bdata);
extern __saveds __asm LONG PL_DLPWriteWord(register __a0 APTR socket, register __d0 WORD wdata);
extern __saveds __asm LONG PL_DLPWriteLong(register __a0 APTR socket, register __d0 LONG ldata);
extern __saveds __asm LONG PL_DLPWrite(register __a0 APTR socket, register __a1 APTR packet, register __d0 LONG length);
extern __saveds __asm LONG PL_DLPSend(register __a0 APTR socket, register __d0 UBYTE cmd, register __d1 UBYTE arg);
extern __saveds __asm LONG PL_DLPRead(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length);
extern __saveds __asm int DLP_OpenConduit(register __a0 APTR socket);
extern __saveds __asm int DLP_EndOfSync(register __a0 APTR socket, register __d0 UWORD status);
extern __saveds __asm int DLP_GetSysTime(register __a0 APTR socket, register __a1 struct DLP_SysTime *time);
extern __saveds __asm int DLP_SetSysTime(register __a0 APTR socket, register __a1 struct DLP_SysTime *time);
extern __saveds __asm int DLP_GetStorageInfo(register __a0 APTR socket, register __d0 UBYTE cardno, register __a1 struct DLP_StorageInfo *info);
extern __saveds __asm int DLP_GetSysInfo(register __a0 APTR socket, register __a1 struct DLP_SysInfo *info);
extern __saveds __asm int DLP_GetDBInfo(register __a0 APTR socket, register __d0 UBYTE cardno, register __d1 UBYTE flags, register __d2 UWORD start, register __a1 struct DLP_DBInfo *info);
extern __saveds __asm LONG DLP_OpenDB(register __a0 APTR socket, register __d0 UBYTE cardno, register __d1 UBYTE mode, register __a1 STRPTR name);
extern __saveds __asm int DLP_DeleteDB(register __a0 APTR socket, register __d0 UBYTE cardno, register __a1 STRPTR name);
extern __saveds __asm LONG DLP_CreateDB(register __a0 APTR socket, register __d0 UBYTE cardno, register __d1 ULONG creator, register __d2 ULONG type, register __d3 UWORD flags, register __d4 UWORD version, register __a1 STRPTR name);
extern __saveds __asm int DLP_CloseDB(register __a0 APTR socket, register __d0 LONG handle);
extern __saveds __asm int DLP_CloseAllDB(register __a0 APTR socket);
extern __saveds __asm int DLP_ResetSystem(register __a0 APTR socket);
extern __saveds __asm int DLP_AddSyncLogEntry(register __a0 APTR socket, register __a1 STRPTR entry);
extern __saveds __asm LONG DLP_CountDBEntries(register __a0 APTR socket, register __d0 LONG handle);
extern __saveds __asm int DLP_MoveCategory(register __a0 APTR socket, register __d0 LONG handle, register __d1 UBYTE oldcat, register __d2 UBYTE newcat);
extern __saveds __asm int DLP_SetUserInfo(register __a0 APTR socket, register __a1 struct DLP_UserInfo *user);
extern __saveds __asm int DLP_GetUserInfo(register __a0 APTR socket, register __a1 struct DLP_UserInfo *user);
extern __saveds __asm int DLP_SetNetSyncInfo(register __a0 APTR socket, register __a1 struct DLP_NetSyncInfo *netsync);
extern __saveds __asm int DLP_GetNetSyncInfo(register __a0 APTR socket, register __a1 struct DLP_NetSyncInfo *netsync);
extern __saveds __asm int DLP_ResetLastSyncPC(register __a0 APTR socket);
extern __saveds __asm int DLP_ResetDBIndex(register __a0 APTR socket, register __d0 LONG handle);
extern __saveds __asm LONG DLP_GetRecordIDList(register __a0 APTR socket, register __d0 LONG handle, register __d1 BOOL sort, register __d2 UWORD start, register __d3 UWORD max, register __a1 ULONG *ids);
extern __saveds __asm int DLP_WriteRecord(register __a0 APTR socket, register __d0 LONG handle, register __d1 UBYTE flags, register __d2 ULONG id, register __d3 UBYTE catid, register __a1 APTR buffer, register __d4 UWORD length, register __a2 ULONG *newid);
extern __saveds __asm int DLP_DeleteRecord(register __a0 APTR socket, register __d0 LONG handle, register __d1 BOOL all, register __d2 ULONG id);
extern __saveds __asm int DLP_DeleteCategory(register __a0 APTR socket, register __d0 LONG handle, register __d1 UBYTE category);
extern __saveds __asm LONG DLP_ReadResourceByType(register __a0 APTR socket, register __d0 LONG handle, register __d1 ULONG type, register __d2 UWORD id, register __a1 APTR buffer, register __a2 UWORD *index, register __a3 UWORD *size);
extern __saveds __asm LONG DLP_ReadResourceByIndex(register __a0 APTR socket, register __d0 LONG handle, register __d1 UWORD index, register __a1 APTR buffer, register __a2 ULONG *type, register __a3 UWORD *id, register __d2 UWORD *size);
extern __saveds __asm int DLP_WriteResource(register __a0 APTR socket, register __d0 LONG handle, register __d1 ULONG type, register __d2 UWORD id, register __a1 APTR buffer, register __d3 UWORD length);
extern __saveds __asm int DLP_DeleteResource(register __a0 APTR socket, register __d0 LONG handle, register __d1 BOOL all, register __d2 ULONG restype, register __d3 UWORD resid);
extern __saveds __asm LONG DLP_ReadAppBlock(register __a0 APTR socket, register __d0 LONG handle, register __d1 UWORD offset, register __a1 APTR buffer, register __d2 UWORD length);
extern __saveds __asm int DLP_WriteAppBlock(register __a0 APTR socket, register __d0 LONG handle, register __a1 APTR buffer, register __d1 UWORD length);
extern __saveds __asm LONG DLP_ReadSortBlock(register __a0 APTR socket, register __d0 LONG handle, register __d1 UWORD offset, register __a1 APTR buffer, register __d2 UWORD length);
extern __saveds __asm int DLP_WriteSortBlock(register __a0 APTR socket, register __d0 LONG handle, register __a1 APTR buffer, register __d1 UWORD length);
extern __saveds __asm int DLP_CleanUpDatabase(register __a0 APTR socket, register __d0 LONG handle);
extern __saveds __asm int DLP_ResetSyncFlags(register __a0 APTR socket, register __d0 LONG handle);
extern __saveds __asm LONG DLP_ReadNextCatRecord(register __a0 APTR socket, register __d0 LONG handle, register __d1 UBYTE cat, register __a1 APTR buffer, register __a2 ULONG *id, register __a3 UWORD *index, register __d2 UWORD *size, register __d3 UBYTE *attr);
extern __saveds __asm LONG DLP_ReadAppPreference(register __a0 APTR socket, register __d0 ULONG creator, register __d1 UWORD id, register __d2 BOOL backup, register __d3 UWORD maxsize, register __a1 APTR buffer, register __a2 UWORD *size, register __a3 UWORD *version);
extern __saveds __asm int DLP_WriteAppPreference(register __a0 APTR socket, register __d0 ULONG creator, register __d1 UWORD id, register __d2 BOOL backup, register __d3 UWORD version, register __a1 APTR buffer, register __d4 UWORD length);
extern __saveds __asm LONG DLP_ReadNextModifiedCatRecord(register __a0 APTR socket, register __d0 LONG handle, register __d1 UBYTE cat, register __a1 APTR buffer, register __a2 ULONG *id, register __a3 UWORD *index, register __d2 UWORD *size, register __d3 UBYTE *attr);
extern __saveds __asm LONG DLP_ReadRecordByID(register __a0 APTR socket, register __d0 LONG handle, register __d1 ULONG id, register __a1 APTR buffer, register __a2 UWORD *index, register __a3 UWORD *size, register __d2 UBYTE *attr, register __d3 UBYTE *cat);
extern __saveds __asm LONG DLP_ReadRecordByIndex(register __a0 APTR socket, register __d0 LONG handle, register __d1 UWORD index, register __a1 APTR buffer, register __a2 ULONG *id, register __a3 UWORD *size, register __d2 UBYTE *attr, register __d3 UBYTE *cat);
extern __saveds __asm LONG DLP_UnpackCategoryAppInfo(register __a0 struct PL_CategoryAppInfo *cai, register __a1 APTR record, register __d0 LONG length);
extern __saveds __asm LONG DLP_PackCategoryAppInfo(register __a0 struct PL_CategoryAppInfo *cai, register __a1 APTR record, register __d0 LONG length);
/*-- PL_File.c --*/
extern __saveds __asm APTR PL_FileOpen(register __a0 STRPTR name, register __a1 struct DLP_DBInfo *ndbinfo);
extern __saveds __asm int PL_FileClose(register __a0 APTR fh);
extern __saveds __asm struct DLP_DBInfo *PL_FileGetDBInfo(register __a0 APTR fh);
extern __saveds __asm int PL_FileSetDBInfo(register __a0 APTR fh, register __a1 struct DLP_DBInfo *dbinfo);
extern __saveds __asm APTR PL_FileGetAppInfo(register __a0 APTR fh, register __a1 ULONG *size);
extern __saveds __asm int PL_FileSetAppInfo(register __a0 APTR fh, register __a1 APTR appinfo, register __d0 ULONG size);
extern __saveds __asm APTR PL_FileGetSortInfo(register __a0 APTR fh, register __a1 ULONG *size);
extern __saveds __asm int PL_FileSetSortInfo(register __a0 APTR fh, register __a1 APTR sortinfo, register __d0 ULONG size);
extern __saveds __asm APTR PL_FileReadResource(register __a0 APTR fh, register __d0 UWORD ix, register __a1 ULONG *size, register __a2 ULONG *type, register __a3 UWORD *id);
extern __saveds __asm int PL_FileAddResource(register __a0 APTR fh, register __a1 APTR buffer, register __d0 ULONG size, register __d1 ULONG type, register __d2 UWORD id);
extern __saveds __asm APTR PL_FileReadRecord(register __a0 APTR fh, register __d0 UWORD ix, register __a1 ULONG *size, register __a2 UBYTE *attr, register __a3 ULONG *uid);
extern __saveds __asm APTR PL_FileReadRecordID(register __a0 APTR fh, register __d0 ULONG uid, register __a1 ULONG *size, register __a2 UBYTE *attr, register __a3 UWORD *ix);
extern __saveds __asm int PL_FileAddRecord(register __a0 APTR fh, register __a1 APTR buffer, register __d0 ULONG size, register __d1 UBYTE attr, register __d2 ULONG uid);
extern __saveds __asm int PL_FileUsedID(register __a0 APTR fh, register __d0 ULONG uid);
extern __saveds __asm int PL_FileRetrieve(register __a0 APTR fh, register __a1 APTR socket, register __d0 UBYTE cardno);
extern __saveds __asm int PL_FileInstall(register __a0 APTR fh, register __a1 APTR socket, register __d0 UBYTE cardno);
extern __saveds __asm int PL_FileMerge(register __a0 APTR fh, register __a1 APTR socket, register __d0 UBYTE cardno);
/*-- PL_ARexx.c --*/
extern __saveds __asm LONG RexxCmd(register __a0 struct RexxMsg *rxmsg, register __a1 struct RexxArg **rxarg);
extern __saveds __asm void PL_AddRexxHandle(register __a0 STRPTR name, register __a1 APTR handle);
extern __saveds __asm APTR PL_FindRexxHandle(register __a0 STRPTR name);
extern __saveds __asm void PL_DeleteRexxHandle(register __a0 STRPTR name);
#endif